package com.cskaoyan.javase.overload._0introduction;
/**
 * 方法的重载:
 *      指的是在同一个类中,存在多个同名方法的现象
 * 方法的名字既然相同了,那么编译器在方法调用时如何区分这些方法呢?
 * 所以方法的重载是有条件的.
 *
 * 条件:
 * 方法的签名: 方法名(形参列表)
 * 现在方法发生重载,方法名是肯定一致的,所以只能形参列表不一致,而且是必须不一致!!
 * 什么叫做方法的形参列表不同呢?
 *      1.形参的数量不同
 *      2.如果形参的数量相同,那么数据类型不同
 *      3.如果形参的数量相同,数据类型也相同,那么位置不同
 * 以上三点就是构成方法重载的条件
 * 除此之外,没有其他条件了.
 *
 * 经典问题:
 *      1.如果形参的名字不同,能构成方法重载吗?
*           是不行的
 *      2.方法的修饰符列表,返回值类型等会影响方法重载吗?
 *          答: 没有任何影响
 *
 * @since 16:18
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class NewDemo {
    public static void main(String[] args) {
        // 输出语句就是典型的方法重载
        System.out.println(123);
        System.out.println(123.0);
        System.out.println("hello");
    }

    // public static void test(){}
    // public static int test(){
    //     return 1;
    // }
    // void test(){}
    public static void test(int a){}
    // 形参名字不同,不构成方法重载
    // public static void test(int b){}
    public static void test(double a){}
    public static void test(double a,int b){}
    public static void test(int a,double b){}
}
